/********** Copyright header - do not remove **********
 *
 * The Toadlet Engine
 *
 * Copyright 2009, Lightning Toads Productions, LLC
 *
 * Author(s): Alan Fischer, Andrew Fischer
 *
 * This file is part of The Toadlet Engine.
 *
 * The Toadlet Engine is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.

 * The Toadlet Engine is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public License
 * along with The Toadlet Engine.  If not, see <http://www.gnu.org/licenses/>.
 *
 ********** Copyright header - do not remove **********/

#include <toadlet/peeper/IndexBufferAccessor.h>
#include <stdlib.h>

namespace toadlet{
namespace peeper{

IndexBufferAccessor::IndexBufferAccessor(IndexBuffer *buffer,int access):
	mBuffer(NULL),
	mFormat(IndexBuffer::IndexFormat_UINT8),
	mData(NULL)
{
	if(buffer!=NULL){
		lock(buffer,access);
	}
}

IndexBufferAccessor::~IndexBufferAccessor(){
	unlock();
}

void IndexBufferAccessor::lock(Buffer *buffer,IndexBuffer::IndexFormat format,int access){
	unlock();

	mBuffer=buffer;
	mFormat=format;
	mData=mBuffer->lock(access);
}

void IndexBufferAccessor::unlock(){
	if(mBuffer!=NULL){
		mBuffer->unlock();
		mBuffer=NULL;
		mData=NULL;
	}
}

}
}
